import axios, { CancelToken } from "./config";


//定义请求接口
/**
 * 
 * @param {String} username  用户名
 * @param {String} password  用户密码
 * @param {Object} query 切换登录类型
 * @returns  </Promise>
 */

//登录
export const loginApi = (username, password, query) =>
    axios({
        url:"/users/login",
        method: 'post',
        params: query,
        data: {
            username,
            password
        }
    });


//获取验证码
export const getCaptchaApi = () => axios.get("/users/getCaptcha")



//校验验证码
export const verifyCaptcha = (captcha = "") => axios.get("/users/verifyCaptcha", {
    params: {
        captcha
    }
});

//获取登录日志
/**
 * 
 * @param {String} page 第几页 
 * @param {String} count 每页的数量
 * @returns {Promise} 返回每一个promise
 */


export const getLoginLopApi = (componentInstance, page = 1, count = 15) => axios.get("/getloginlog", {
    params: {
        page,
        count
    }
})

//获取微信二维码url
export const getQrcodeUrlApi = (sid) => axios.get("/users/getQrcode", {
    params: {
        sid
    }

})

//微信登录
export const wechatLoginApi = (wechatCode) => axios.get("/users/wechatLogin", {
    params: {
        wechatCode
    }
})

//获取手机验证码
export const getSmsCode = phoneNumber => axios.post("/sms/send", {
    phoneNumber
})

//手机登录
export const phoneLoginApi = data => axios.post("/users/login?type=sms", data)

//修改用户信息
export const updateUser = (data) => axios.post("/users/updateUser", data)

//获取权限菜单
export const getMenulistApi = () => axios.get("/permission/getMenuList")


//获取学员列表
/**
 * 
 * @param {Number} page  页码
 * @param {Number} count  每页显示的数量
 * @param {String} classes  班级
 * @returns {Promise} 返回一个promise类型的方法
 */

export const getStuListApi = (page = 1, count = 10, classes = "") => axios.get("/students/getstulist", {
    params: {
        page,
        count,
        class: classes
    }
})

//增加学员信息
export const addStuApi = data => axios.post("/students/addstu", data)


//编辑学员信息

export const updateStuApi = data => axios.post("/students/updatestu", data)

//删除学员信息
export const delStuApi = (sId) => axios.get("/students/delstu", {
    params: {
        sId
    }
})

//获取班级列表
export const getClassesApi = () => axios.get("/students/getclasses")


//搜索学员
export const searchStuApi = (page, key, count) => {
    //短路运算
    count = count || 10;
    key = key || "";
    page = page || 1;
    return axios.get("/students/searchstu", {
        params: {
            page,
            key,
            count
        }
    })
}


//商城模块
//获取订单
export const getOrderApi = (order_id) => axios.post("/order/get_order")

//获取产品
/**
 * 
 * @param {String} catgory_id 商品所在类目ID
 * @returns 
 */
export const getVipListApi = category_id => axios.get("/product/get_product", {
    params: {
        category_id
    }
})


//生成预支付订单
export const preOrderApi = (product_id, quantity = 1) => axios.post("/order/pre_order", {
    product_id,
    quantity
})

/**
 * 
 * @param {String} order_id 订单id
 * @returns 
 */

//获取订单详情
export const getOrderDetailApi = order_id => axios.post("/order/get_order", {
    order_id
})

//发起支付
export const getPayUrlApi = order_id => axios.post("/pay/payment", {
    order_id
})

//查询支付结果  这个使用ajax轮询的方式查询状态
export const queryPayResultApi = order_id => axios.get("/order/query_order_status", {
    params: {
        order_id
    }
})